﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NetFrameworkExtensions
{
  public interface IExtensibleFactory
  {
    void SetAdditionalProperties(object obj, IDictionary<string, object> properties);
  }

  public abstract class ExtensibleFactory<T> : Factory<T>, IExtensibleFactory
  {
    public abstract void SetAdditionalProperties(T obj, IDictionary<string, object> properties);

    void IExtensibleFactory.SetAdditionalProperties(object obj, IDictionary<string, object> properties)
    {
      SetAdditionalProperties((T)obj, properties);
    }
  }
}
